// pages/mime/mime.js
import {
  addUser,
  findUser,
  updateUser
} from "../../api/userApi"
import {
  addWeight,
  deleteWeight,
  findWeightPage
} from "../../api/weightApi"
import {
  getDate,
  getDay,
  getHour,
  getMinute,
  getMonth,
  getYear
} from "../../utils/dateUtil"
import storageUtil from "../../utils/storageUtil"
import {
  verifyNumber,
  verifyPostNumber
} from "../../utils/verifyUtil"
import toastUtil from './../../utils/toastUtil'
import wxUtil from './../../utils/wxUtil'
import shareUtil from './../../utils/shareUtil'

// 获取应用实例
const app = getApp()

Page({
  data: {
    // 系统平台
    system: app.globalData.system,
    // 导航栏高度
    navigationHeight: app.globalData.navigationHeight,
    // 统一背景颜色
    unifyBgColor: app.globalData.unifyBgColor,
    // 顶部导航栏高度
    topNavigationHeight: app.globalData.topNavigationHeight,
    // 主色调
    mainColor: app.globalData.mainColor,
    // 分页提示
    pageMsg: '没有更多了',
    // 分页提示 ---- 加载中
    pageMsgLoading: '加载中',
    // 分页提示 ---- 没有更多了
    pageMsgNone: '没有更多了',
    // 用户信息
    userInfo: {
      nickName: "体重日志",
      avatarUrl: "/image/page/mime/default_head.png",
      authorizeFlag: false
    },
    // 菜单集合
    menuList: [{
      name: '导出体重数据',
      url: "/pages/mime/exportWeight/exportWeight",
      icon: "/image/page/mime/export.png"
    },{
      name: '意见反馈',
      url: "/pages/mime/suggest/suggest",
      icon: "/image/page/mime/suggest.png"
    }, {
      name: '关于我们',
      url: "/pages/mime/about/about",
      icon: "/image/page/mime/about.png"
    }]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 开启微信内置分享功能
    shareUtil.startShare()
    // 查看用户
    this.getUser()

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return shareUtil.shareToFreind()
  },

  // 获取用户信息
  getuserinfo(e) {
    // weight_diary_wx.cloud.callFunction({
    //   name: "getUserInfo",
    //   data: {
    //     cloudID: e.detail.cloudID
    //   },
    //   success: res => {
    //     console.log(res)
    //   }
    // })
    wx.getUserProfile({
      desc: '用于完善用户信息',
      success: (res) => {
        console.log('success : res : ', res)
        // 查看是否存在数据
        this.findUser((callRes) => {
          // 修改用户
          this.updateUser(callRes._id, res.userInfo)
        }, () => {
          // 添加用户
          this.addUser(res.userInfo)
        })

      },
      fail: (res) => {
        console.log('fail : res : ', res)
        toastUtil.showToast('授权用户信息失败!')
      },
      complete: (res) => {
        console.log('complete : res : ', res)
      }
    })
  },

  // 添加用户
  addUser(data) {
    console.log("addUser......")
    addUser(data).then((res) => {
      console.log("addUser...res... : ", res)
      this.findUser()
    }, () => {
      toastUtil.showToast('用户信息存储失败!')
    })
  },

  findUser(successCallBack, failCallBack) {
    console.log("findUser......")
    let form = {}
    form.openid = storageUtil.getStorage("openId")
    findUser(form).then((res) => {
      console.log("findUser...res... : ", res)
      if (res) {
        storageUtil.setStorage("userInfo", res)
        res.authorizeFlag = true
        this.setData({
          userInfo: res
        })
        successCallBack && successCallBack(res)
      } else {
        failCallBack && failCallBack()
      }
    }, () => {
      toastUtil.showToast("查找用户信息失败!")
    })
  },

  // 查看用户
  getUser() {
    // 查看用户缓存
    let userInfo = storageUtil.getStorage("userInfo")
    if (userInfo && userInfo.avatarUrl) {
      userInfo.authorizeFlag = true
      this.setData({
        userInfo: userInfo
      })
      return
    }
    // 没有缓存  查看数据库是否存在
    this.findUser();
  },

  // 修改用户
  updateUser(id, data) {
    updateUser(id, data).then((res) => {
      console.log("updateUser...res... : ", res)
      this.findUser()
    }, () => {
      toastUtil.showToast('用户信息存储失败!')
    })
  },

  // 跳转用户菜单
  goToMenuPage(e) {
    console.log(e)
    let url = e.currentTarget.dataset.url
    wx.navigateTo({
      url: url,
    })
  }
})
